package com.anivia.system.auth.model.vo;

import com.anivia.common.core.enums.DesensitizedTypeEnum;
import com.anivia.system.auth.enums.SwitchStatusEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 角色
 *
 * @author wangj
 */
@Data
@Schema
public class RoleInfoVO implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "角色id")
    private Integer id;

    @Schema(description = "name")
    private String name;

    @Schema(description = "描述")
    private String description;

    @Schema(description = "状态")
    private SwitchStatusEnum status;

    @Schema(description = "创建人id")
    private Integer creatorId;

    @Schema(description = "创建人姓名")
    private String creatorName;

    @Schema(description = "更新人id")
    private Integer updaterId;

    @Schema(description = "更新人姓名")
    private String updaterName;

    @Schema(description = "添加时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "脱敏字段")
    private List<DesensitizedTypeEnum> desensitizationField;

    @Schema(description = "资源权限")
    private List<ResourceInfoVO> resource;
}
